/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Controleur;

import Vue.*;
import DAO.*;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author sirine
 */
public class AccueilListener implements ActionListener {

    Fenetre frame;
    Accueil acc;

    public AccueilListener(Fenetre fenetre, Accueil acc) {
        this.frame = fenetre;
        this.acc = acc;

    }

    @Override
    public void actionPerformed(ActionEvent ae) {


        if (ae.getActionCommand().equals("Reset")) {

            acc.clear();
            acc.qcm();
 
        }

        if (ae.getActionCommand().equals("Choix")) {

            if (acc.getChoix().equals("QCM")) {

                acc.clear();
                acc.qcm();

            } else if (acc.getChoix().equals("TAT")) {

                acc.clear();
                acc.tat();

            }

        }

        if (ae.getActionCommand().equals("Soumettre fichier")) {
            
            String codeXML="";
            
            if (acc.getChoix().equals("QCM")) {
        
                codeXML="<Question>\n";
                codeXML=codeXML+"<enonce>\n";
                codeXML=codeXML+acc.getContenu();
                codeXML=codeXML+"\n</enonce>";
                
                codeXML=codeXML+"\n<reponse classe=\"vrai\">";
                codeXML=codeXML+acc.getBonneReponse();
                codeXML=codeXML+"</reponse>";
                
                codeXML=codeXML+"\n<reponse>";
                codeXML=codeXML+acc.getReponse1();
                codeXML=codeXML+"</reponse>";
                
                codeXML=codeXML+"\n<reponse>";
                codeXML=codeXML+acc.getReponse2();
                codeXML=codeXML+"</reponse>";
                
                codeXML=codeXML+"\n</Question>";
                
                System.out.println(codeXML);
                

            } else if (acc.getChoix().equals("TAT")) {
                
                codeXML="<TAT>\n<question>";
                codeXML=codeXML+acc.getContenu();
                codeXML=codeXML+"<reponse>";
                codeXML=codeXML+acc.getReponse1();
                codeXML=codeXML+"</reponse>";
                codeXML=codeXML+"</question>\n</TAT>";
  
            }
            
            

            FileOutputStream fichier;
            String choix = acc.getChoix();

            Cryptage bf = new Cryptage();
            byte[] ciphertext = bf.crypt(codeXML);

            try {

                try {

                    File file = new File("./" + acc.getTitre() + ".xml");

                    if (file.delete()) {
                        System.out.println(file.getName() + " is deleted!");
                    } else {
                        System.out.println("Delete operation is failed.");
                    }

                } catch (Exception e) {

                    e.printStackTrace();

                }
                fichier = new FileOutputStream("./" + acc.getTitre() + ".xml", true);
                fichier.write(ciphertext);
                fichier.flush();
                fichier.close();

            } catch (IOException ex) {
                Logger.getLogger(AccueilListener.class.getName()).log(Level.SEVERE, null, ex);
            }

 
            GestionnaireXML g1 = new GestionnaireXML();
            g1.connexion();
            File file = new File("./" + acc.getTitre() + ".xml");


            try {
                g1.soumettreFichier(file, choix);
            } catch (Exception ex) {
                Logger.getLogger(AccueilListener.class.getName()).log(Level.SEVERE, null, ex);
            }


            acc.clear();
 


        } else if (ae.getActionCommand().equals("Aide")) {
 
            Aide a = new Aide();
        }


        Object source = ae.getSource();

        /*
         if(source.equals(jButton1){
         //ajoute dans la BDD
         System.out.println("Soumettre");
         } else if(source.equals(jButton2){
         //jLabel et modifier le jLabel avec set
         System.out.println("Aide");	
         }
         */


    }
}
